package thread;

public class Demo12 {
    public static void main(String[] args) {
        Thread t = new Thread(() -> {
            // t.isInterrupted();
            //currentThread()是Thread类的静态方法，就能获取到调用这个方法的线程的实例
            //哪个线程调用，返回的引用就指向哪个线程的实例
            //isInterrupted,判断对象关联的线程的标志位是否设置，还能唤醒sleep，初始情况是false，未被终止
            while (!Thread.currentThread().isInterrupted()) {
                System.out.println("hello thread");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // throw new RuntimeException(e);
                    // e.printStackTrace();

                    // balabala 写一些其他的逻辑之后, 再 break
                    break;
                }
            }
        });

        t.start();

        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

        //在主线程中控制 t 线程被终止，设置上述标志位，把false设置成了true
        t.interrupt();
    }
}

